import request from '@/utils/request'

// 查询角色列表
export function listRole(query) {
  return request({
    url: '/getAllRoles',
    method: 'get',
    params: query
  })
}

// 查询角色详细信息
export function getRole(id) {
  return request({
    url: '/selectRoleById',
    method: 'get',
    params: { roleId: id }
  })
}

// 新增角色
export function addRole(data) {
  return request({
    url: '/insertRole',
    method: 'post',
    data: data
  })
}

// 修改角色
export function updateRole(data) {
  return request({
    url: '/updateRoleById',
    method: 'post',
    data: data
  })
}

// 删除角色
export function deleteRole(id) {
  return request({
    url: '/deleteById',
    method: 'post',
    data: { roleId: id }
  })
}

// 批量删除角色
export function batchDeleteRole(ids) {
  const idArray = ids.split(',');
  // 由于后端没有提供批量删除的接口，这里使用Promise.all执行多个删除请求
  return Promise.all(idArray.map(id => deleteRole(id)))
    .then(() => {
      return {
        code: 200,
        message: '批量删除成功',
        data: null
      }
    })
    .catch(error => {
      return {
        code: 500,
        message: '批量删除失败',
        error: error
      }
    });
}

// 导出角色数据
export function exportRole() {
  // 由于后端可能没有导出功能，我们先获取所有角色然后前端处理导出
  return listRole().then(res => {
    return {
      code: 200,
      message: '导出成功',
      data: res
    }
  })
} 